package icu.cqcai.xinsi.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 聊天会话实体类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ChatSession {
    
    /** 会话ID */
    private Long id;
    
    /** 用户ID */
    private Long userId;
    
    /** 会话标题（可以是第一条消息的摘要） */
    private String title;
    
    /** 会话状态：1-活跃，0-已结束 */
    private Integer status;
    
    /** 最后一条消息时间 */
    private LocalDateTime lastMessageTime;
    
    /** 创建时间 */
    private LocalDateTime createTime;
    
    /** 更新时间 */
    private LocalDateTime updateTime;
    
    /** 消息总数 */
    private Integer messageCount;
    
    /** 扣子会话ID（用于上下文维持） */
    private String cozeConversationId;
    
    /** 扣子用户ID（固定用于整个会话） */
    private String cozeUserId;
    
    /**
     * 构造函数（创建新会话）
     */
    public ChatSession(Long userId, String title) {
        this.userId = userId;
        this.title = title;
        this.status = 1; // 默认活跃状态
        this.messageCount = 0;
        this.createTime = LocalDateTime.now();
        this.updateTime = LocalDateTime.now();
        this.lastMessageTime = LocalDateTime.now();
    }
    
    /**
     * 构造函数（创建新会话，带扣子ID）
     */
    public ChatSession(Long userId, String title, String cozeUserId) {
        this(userId, title);
        this.cozeUserId = cozeUserId;
    }
} 